iT邦幫忙

2023 iThome 鐵人賽

DAY 28
1

Spring Boot RESTful API

今天我們來使用Spring Boot 建立一個簡單的RESTful API範例。在這個範例中,我們會建一個用於管理API的類別。我們將為新增、刪除、更新和搜尋提供供方法節點。

首先讓我們建立一個用於API的Entity類別:

@Entity
public class Task {
    private Long id;
    private String title;
    private boolean completed;

    // getter和setter
}

建立一個處理HTTP請求的controller,在這個類別我們會定義RESTful節點。

	// TaskController.java
@RestController
@RequestMapping("/tasks")
public class ApiController {

		@Autowired
    TaskRepository taskRepository;

    @GetMapping
    public List<Task> getTasks() {
        return tasks;
    }

    @GetMapping("/{getTask}")
    public ResponseEntity<Task> getTask(@PathVariable Long id) {
        Task task = taskRepository.findTaskById(id);
        if (task != null) {
            return ResponseEntity.success(task);
        } else {
            return ResponseEntity.fail();
        }
    }

    @PostMapping
    public Task createTask(@RequestBody Task task) {
        taskRepository.add(task);
        return task;
    }

    @PutMapping("/{updateTask}")
    public ResponseEntity<Task> updateTask(@PathVariable Long id, @RequestBody Task updatedTask) {
        Task task = taskRepository.findTaskById(id);
        if (task != null) {
            task.setTitle(updatedTask.getTitle());
            task.setCompleted("true");
            return ResponseEntity.success(task);
        } else {
            return ResponseEntity.fail();
        }
    }

    @DeleteMapping("/{deleteTask}")
    public ResponseEntity<Void> deleteTask(@PathVariable Long id) {
        Task task = taskRepository.findTaskById(id);
        if (task != null) {
            tasks.remove(task);
            return ResponseEntity.success(task);
        } else {
            return ResponseEntity.fail();
        }
    }
}

現在,我們可以執行Spring Boot應用程式。Spring Boot 會執行內嵌的Web服務器,我們就可以呼叫該RESTful API指定的節點就可以進入我們API的方法咯。

參考資料

https://www.techtarget.com/searchapparchitecture/definition/RESTful-API
https://spring.io/guides/tutorials/rest/
https://www.baeldung.com/rest-with-spring-series


上一篇
Day 27 : 什麼是RESTful API?
下一篇
Day 29 : 春天的門神,Spring Security
系列文
Spring、Spirng MVC 及 Spring Boot 自主學習旅途!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言